#!/bin/python
#方法1
import random
s = 'abcdefghijklmnopqrstuvwxyz'
l1 = [f'{"".join(random.choices(s, k=2))}' for i in range(1,101)]
print(l1)
print("-"*100)
d1 = {}
for i in set(l1):
     d1[i] = l1.count(i) 
print(sorted(d1.items(), key=lambda item: item[1], reverse=True))
print("-"*100)
#方法2
d2 = {}
for j in l1:
    if j not in d2:
        d2[j] = 0
    d2[j] += 1
print(sorted(d2.items(), key=lambda item: item[1], reverse=True))

#提问：方法1用count是不是多次遍历l1，共遍历set(l1)次，应该是效率不高，而方法2字典的话只遍历一次l1,有重复的\
# 只是数量+1.


# 是的，这样的话，是有效率差别的，而且，方法1中，每次都要进行set转换，会有内存消耗
